// #include "intr.h"

extern unsigned char PBLAZEPORT[]; // port 


void delay(int ms) ;  // 延时函数

void main() {
    unsigned char a = 0 ; 
    unsigned char b = 2 ;
    int i = 0 ;
    __asm   ENABLE INTERRUPT  __endasm; // 开中断
    PBLAZEPORT[0] = 0 ; // 输出 0 ;
    PBLAZEPORT[0] = 1 ;
    for(a=0;a<10;a++){
        PBLAZEPORT[0] = a ;  // 输出 a*b 的值
    }
    // 读取PORT0 输入
    b = PBLAZEPORT[0] ; 
    PBLAZEPORT[0] = b ; // 将读取的值再次输出
    if(PBLAZEPORT[0]>5){
        PBLAZEPORT[0] = 5 ;
    }
    i =(int) PBLAZEPORT[0] * PBLAZEPORT[0];
    i =(int) PBLAZEPORT[0] * PBLAZEPORT[0];
    PBLAZEPORT[0] = i; // 输出 i 的低8位

    // 使用软件 触发2次中断 
    PBLAZEPORT[255] = 0x00 ;
    PBLAZEPORT[255] = 0x01 ;
    PBLAZEPORT[255] = 0x00 ;

    PBLAZEPORT[255] = 0x01 ;
    PBLAZEPORT[255] = 0x00 ;

    PBLAZEPORT[0] = 0 ;
    delay(1000) ;
    PBLAZEPORT[0] = 1 ;

    // for(;;) ; // PBCC自带死循环 ， 可以不用写 
}


void delay(int ms)  {
    int i = 0 ;
    for(i=0;i<ms;i++){
        __asm  nop  __endasm; // 空指令， 不做任何操作
    }
}
// 中断服务函数 ，名称必须是这个
void misr()  __interrupt 
{
    __asm  DISABLE INTERRUPT  __endasm; // 关中断
	PBLAZEPORT[0] = 0xff ;
    // __asm  ENABLE INTERRUPT  __endasm; // 开中断 , 可以不动掉，会自动恢复
}